#include <stdio.h>
#include <sqlite3.h>

int main() {
    sqlite3 *db;  // 数据库句柄
    char *err_msg = 0;  // 错误信息
    int rc;  // 返回码

    // 打开数据库（如果不存在则创建）
    rc = sqlite3_open("/home/xiaoyu/Desktop/sqlite.db", &db);
    if (rc != SQLITE_OK) {
        fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db));
        sqlite3_close(db);
        return 1;
    }

    // 示例1：直接执行UPDATE语句
    // const char *update_sql = "UPDATE tags SET TYPE = 8 , decimal = 0.01 WHERE name = '累积流量' AND driver_name IN (SELECT name from nodes where plugin_name =  'mbus-188');";
    const char *update_sql = "UPDATE tags SET `type` = 8, `decimal` = 0.01 WHERE name = '累积流量' AND driver_name IN (SELECT name FROM nodes WHERE plugin_name = 'mbus-188');";
    rc = sqlite3_exec(db, update_sql, 0, 0, &err_msg);
    if (rc != SQLITE_OK) {
        fprintf(stderr, "SQL错误: %s\n", err_msg);
        sqlite3_free(err_msg);
        sqlite3_close(db);
        return 1;
    }
    printf("数据更新成功！影响行数: %d\n", sqlite3_changes(db));

    // 关闭数据库连接
    sqlite3_close(db);
    printf("数据库操作完成\n");
    return 0;
}
